Many businesses require secure transmission of data between themselves and clients or customers. For example, a tax preparer may need to deliver data (e.g. tax return information) to a taxpayer for review. Additionally, the taxpayer may need to edit the data and to transmit the corrected data back to the tax preparer.
Transmission of information between users can be accomplished using different forms of electronic communication. Examples of common forms of electronic communication and messaging include electronic mail (email), peer-to-peer messaging services, and web services.
A web service is a software system designed to support machine-to-machine interaction over a network. One way to use a web service to transmit information between a first user and a second user is for the first user to transmit the information to the web service, and for the web service, in turn, to send the information to the second user in an email. The information delivered to the second user may contain raw data, executable software applications, etc.
Delivering an executable software application to a user within an email may be difficult to accomplish because many email systems filter out email that contains anything executable (for virus protection reasons, and for other reasons) or emails that exceed a predetermined size limitation. It may be possible to avoid the size limitation issue by sending the user a smaller executable having a primary purpose of allowing the user to download and install the full client software application. However, trying to send a smaller application executable does not eliminate the problem of executables being filtered out by email systems.
Data sent by tax preparers to their clients is often sensitive, thus requiring additional security to ensure that the data is only readable by the intended recipient. To provide the desired security, data is often encrypted prior to transmission.
Encryption is the manipulation of data to prevent access to the data by unauthorized individuals. To read encrypted data, a user typically must have a key or password that enables decryption of the data. Often encryption involves the use of a pair of keys including a public key and private key combination. The public key may be as widely published as the owner desires and the private key is known by the sender of the encrypted data and the intended recipient of the encrypted data. Such decryption generally takes place with a client application having functionality such as an encryption algorithm for encrypting and decrypting the data.